using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("PushNotificationManager")]
	public class PushNotificationManager : MonoClass
	{
		public static int UNASKED => MonoClass.smethod_6<int>(TritonHs.MainAssemblyPath, "", "PushNotificationManager", "UNASKED");

		public static int DISALLOWED => MonoClass.smethod_6<int>(TritonHs.MainAssemblyPath, "", "PushNotificationManager", "DISALLOWED");

		public static int ALLOWED => MonoClass.smethod_6<int>(TritonHs.MainAssemblyPath, "", "PushNotificationManager", "ALLOWED");

		public bool m_isShowingContext => method_2<bool>("m_isShowingContext");

		public PushNotificationManager(IntPtr address, string className)
			: base(address, className)
		{
		}

		public PushNotificationManager(IntPtr address)
			: this(address, "PushNotificationManager")
		{
		}

		public static int GetDevicePushNotificationStatus()
		{
			return MonoClass.smethod_14<int>(TritonHs.MainAssemblyPath, "", "PushNotificationManager", "GetDevicePushNotificationStatus", Array.Empty<object>());
		}

		public static PushNotificationManager Get()
		{
			return MonoClass.smethod_15<PushNotificationManager>(TritonHs.MainAssemblyPath, "", "PushNotificationManager", "Get", Array.Empty<object>());
		}

		public static bool ShouldDisallowPushNotification()
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "PushNotificationManager", "ShouldDisallowPushNotification", Array.Empty<object>());
		}

		public void DisallowPushNotification()
		{
			method_8("DisallowPushNotification");
		}

		public bool AllowRegisterPushAtLogin()
		{
			return method_11<bool>("AllowRegisterPushAtLogin", Array.Empty<object>());
		}

		public void OnPushNotificationContextResponse(AlertPopup.Response response, object userData)
		{
			method_8("OnPushNotificationContextResponse", response, userData);
		}

		public int GetGamesWon()
		{
			return method_11<int>("GetGamesWon", Array.Empty<object>());
		}

		public bool IsShowingContext()
		{
			return method_11<bool>("IsShowingContext", Array.Empty<object>());
		}
	}
}
